<template>
  <view >
    <view class="pd_lf--40" style="margin-top: 40rpx;">
      <view class="page_card">
	   <image src="./static/icon_logo.png" class="icon_logo"></image>
        <view class="card_title">究极生酮</view>
       <image src="./static/icon_arrow.png" class="icon_arrow" />
        <image src="./static/icon_scales.png" class="icon_scales" />
        <view class="card_tips">请光脚站在体脂秤上</view>
        <view class="card_line"></view>
        <view class="card_notice">确保双脚紧贴秤(或秤上两边的电极片)，体脂秤弱电流可能对孕妇身体有影响，建议孕妈穿鞋袜测量体重即可。</view>
      </view>
    </view>
   <!-- <image src="/static/images/time/timer_icon_01.png" class="img_bg" /> -->
  </view>
</template>

<script>
let sysHeight = uni.getSystemInfoSync().statusBarHeight + 'px';
const app = getApp();
import colors from '@/mixins/color';
import tabBar from "@/pages/index/visualization/components/tabBar.vue";
import Cache from '@/utils/cache';
import {  USER_INFO } from '@/config/cache';
import { mapState,mapGetters} from "vuex";
export default {
  name: "index",
  data() {
  	return {
      statusBarHeight: 46,
      doorLogs: [],
      originWeight: "",
      totalTimes: 0,
      dianzu: "",
      weight: ""
	  }
  },
  components: {
    tabBar,
  },
  mixins:['color'],
  onLoad(option) {
    uni.hideTabBar()
    let that = this;
    // #ifdef MP
    // 小程序静默授权
    if (!this.$store.getters.isLogin) {}
    // #endif
    let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
    let curRoute = routes[routes.length - 1].route //获取当前页面路由
    this.activeRouter = '/' + curRoute
  },
  onReady() {
    
  },
  onShow: function() {
	  let userInfo = Cache.get(USER_INFO, true);
	  console.log('u',userInfo)
	  if(!userInfo.m_age||!userInfo.m_gender||!userInfo.m_height||userInfo.m_age<1||userInfo.m_height<1){
		  uni.navigateTo({
		  		url: `/pages/users/user_info/index`
		  })
	  }else{
		  this.handleConnect()
	  }
    // this.handleConnect()
  },
  methods:{
	ab2hex(buffer) {
	  var hexArr = Array.prototype.map.call(
	    new Uint8Array(buffer),
	    function(bit) {
	      return ('00' + bit.toString(16)).slice(-2)
	    }
	  )
	  return hexArr.join('');
	},
	
	
    handleConnect() {
      uni.openBluetoothAdapter({
          // 蓝牙初始化成功执行
          success:(res)=>{
            // 这里成功之后就不用管了,直接执行就行
            uni.startBluetoothDevicesDiscovery({
                success:()=>{
                  // 调用成功之后就开始查询附近蓝牙了
                  // 成功之后可调用这个函数,每次查询到新的蓝牙设备就会调用
                  // 这个函数使用不使用都可以,不影响查询的结果
                  uni.onBluetoothDeviceFound((devices)=>{
                     // 蓝牙设备信息
					// let data = this.ab2hex(devices[0].advertisData)
                    // 返回的数据是ArrayBuffer格式的需要进行转换,不然咱也看不懂都是些啥
                    // ArrayBuffer 的转换后面会详细写出来
                  })
                  // 接着进行 成功之后建议等个几秒钟之后再获取查询到的列表
                  // 我这里就是用定时器做了一个两秒的延迟
                  setTimeout(()=>{
                    uni.getBluetoothDevices({
					
                      success:(res)=>{
                        // res.devices 为 查询到的蓝牙设备列表
                        // 拿到结果之后,进行处理
                        // 首先进行过滤一下查询的列表,会出现很多未知设备这类的,这里就直接把它们给排除掉了,只留下有完整名称的设备
						
                        var arr = []
							
                        res.devices.forEach((element)=>{
							let str = this.ab2hex(element.advertisData)
							
							console.log('蓝1牙',str)
							// 蓝牙 c000 0000 0000 0002 24000000005bac
							// 4c0010062e1a04d85109
							//  c000 120c 0000 0002 24000000005bac
							//  c000 0866 0000 0002 24000000005bac
							//c0ba 01b5 0000 0002 2022 5a7c72a694
							if("C0" === str.slice(0, 2).toUpperCase() && "0002" === str.slice(12, 16)){
								 arr.push(element)
								 
								let t = str.slice(4, 8),
									s = str.slice(8, 12),
									m = str.slice(16, 18);
										
										const e = parseInt(t, 16) / 10,
											  i = parseInt(s, 16) / 10;
										const	msg = parseInt(m,16).toString(2);
										console.log('电子秤数据weight',t,e)
										console.log('电子秤数据message',m)
										console.log('电子秤数据字符串',str)
										console.log('电子秤数据字符串msg',msg)
										if(e>0){
											uni.stopBluetoothDevicesDiscovery();
											uni.navigateTo({
													url: `/pages/weights/result?weight=${e}&dianzu=${i}&message=${msg}`
											})
										}else{
											
										}
									 	
								this.originWeight = t
							}
                        })
                        // 筛选之后在进行判断是否有正常的蓝牙设备
                        // 当然你也可以查看一下被筛选掉的设备是否有你所使用的设备,如果有你可以去掉筛选 或者自己定义筛选条件
                        if(arr.length == 0){
                          uni.showToast({
							  title: "未查询到可用设备,请重新扫描",
							  duration: 1000,
							  icon: "none",
							});
                        }
                        // 最后这个arr就是所查到的列表
                        // 不管查没查到一定要使用 stopBluetoothDevicesDiscovery 停止查询
                        uni.stopBluetoothDevicesDiscovery()
                      }
                    })
                  },2000)
                  
                }
              })
          },
          // 蓝牙初始化失败执行
          fail:(err)=>{
            console.log('fail',err)
			
            // 初始化失败之后有需求的话可以进行一些处理
            // 没有需求的也不用管
            // 一般情况下,还是需要分析一下原因的,这用用户和自己就知道为什么失败了
            if(err.errCode == 10001){
              // 这种情况是未打开蓝牙 就需要提示用户检测蓝牙并打开
              uni.showToast({
                      title: "当前设备蓝牙未开启，请开启蓝牙!",
                      icon: "none",
                      duration: 2000,
              });
            }else{
				uni.showToast({
				        title:"未查询到可用设备,请重试",
				        icon: "none",
				        duration: 2000,
				});
			}
          }
     })
   
    
    },
  }
}
</script>
<style lang="scss" scoped>
	.top{
		padding-top: 100px;
	}
.pd_lf--40 {
  padding: 0 40rpx;
  box-sizing: border-box;
}
.img_bg {
  position: fixed;
  left: 0;
  top: 0;
  height: 617rpx;
  width: 100vw;
  z-index: -1;
}
.img_all_bg {
  position: fixed;
  top: 325rpx;
  left: 0;
  width: 100vw;
  height: 1294rpx;
  z-index: -2;
}
.page_title {
  font-size: 40rpx;
  font-weight: bold;
  color: #ffffff;
  text-align: center;
  padding: 20rpx 0 50rpx;
}
.page_card {
  width: 100%;
  padding: 120rpx 38rpx 100rpx;
  background: #ffffff;
  border-radius: 24rpx;
  box-sizing: border-box;
  box-shadow: 0px 1px 46px 0px rgba(136, 142, 163, 0.33);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.icon_logo {
  width: 90rpx;
  height: 60rpx;
  display: block;
}

.card_title {
  font-size: 36rpx;
  line-height: 1;
  font-weight: 600;
  color: #515259;
  margin-top: 30rpx;
}

.icon_arrow {
  width: 74rpx;
  height: 62rpx;
  display: block;
  margin-top: 84rpx;
}

.icon_scales {
  margin-top: 34rpx;
  width: 442rpx;
  height: 128rpx;
  display: block;
}

.card_tips {
  color: #525252;
  font-size: 34rpx;
  font-weight: 600;
  line-height: 40rpx;
  margin-top: 58rpx;
}

.card_line {
  margin-top: 134rpx;
  width: 100%;
  height: 1rpx;
  background: #EEEEF2;
}

.card_notice {
  margin-top: 66rpx;
  padding: 0 34rpx;
  color: #5B637C;
  font-size: 28rpx;
  line-height: 44rpx;
  text-align: center;
}

</style>


